<?php

class ImgComponent extends Object{

	function createThumbnail($img, $path, $name, $minWidth = 100, $minHeight = 100){
		//On supprime l'extention du nom
		$name = substr($name, 0, -4);
		//On récupère les dimensionss de l'image
		$dimensions = getimagesize($img);
		//On créé une image à partir du fichier récupéré
		if(substr(strtolower($img), -4) == ".jpg")
			$image = imagecreatefromjpeg($img);
		else if(substr(strtolower($img), -4) == ".png")
			$image = imagecreatefrompng($img);
		else if(substr(strtolower($img), -4) == ".gif")
			$image = imagecreatefromgif($img);
		else
			return false;

		//Création des miniatures
		$thumb = imagecreatetruecolor($minWidth, $minHeight);
		if($dimensions[0] > ($minWidth / $minHeight) * $dimensions[1])
		{
			$dimY = $minHeight;
			$dimX = $minHeight * $dimensions[0] / $dimensions[1];
			$decalX = -($dimX - $minWidth) / 2;
			$decalY = 0;
		}
		if($dimensions[0] < ($minWidth / $minHeight) * $dimensions[1])
		{
			$dimX = $minWidth;
			$dimY = $minWidth * $dimensions[1] / $dimensions[0];
			$decalY = -($dimY - $minHeight) / 2;
			$decalX = 0;
		}
		if($dimensions[0] == ($minWidth / $minHeight) * $dimensions[1])
		{
			$dimX = $minWidth;
			$dimY = $minHeight;
			$decalX = 0;
			$decalY = 0;
		}
		//On modifie l'image crée en y plaçant la grande image redimensionnée et décalée
		imagecopyresampled($thumb, $image, $decalX, $decalY, 0, 0, $dimX, $dimY, $dimensions[0], $dimensions[1]);
		//On sauvegarde le tout
		imagejpeg($thumb, $path."/".$name.".jpg", 90);
		return true;
	}

}

?>